Fortran এ Error এবং Exception Handling

Error Handling (এরর হ্যান্ডলিং) - ফোরট্রান (Fortran) - Computer Programming

294

ফোরট্রানে Error এবং Exception Handling

ফোরট্রান, যেমন অন্যান্য প্রোগ্রামিং ভাষায়, তেমন শক্তিশালী বা বিল্ট-ইন exception handling মেকানিজম সরবরাহ করে না, তবে ফোরট্রান ত্রুটি (error) পরিচালনা করার জন্য কিছু পদ্ধতি এবং কৌশল প্রদান করে। এর মধ্যে অন্যতম হলো I/O Error Handling, Error Codes, এবং TRY-CATCH মত পদ্ধতি।


১. ফোরট্রানে I/O Error Handling

ফোরট্রানে ইনপুট বা আউটপুট (I/O) অপারেশন করার সময় ত্রুটি হতে পারে (যেমন, ফাইল না খোলা, অথবা অবৈধ ডেটা ইনপুট)। এর জন্য IERR বা IOMSG অপশন ব্যবহার করা যেতে পারে যা ত্রুটি ধরতে সাহায্য করে।

সিনট্যাক্স:

READ(unit, *, IOSTAT=status) variable

এখানে IOSTAT=status ভেরিয়েবলটি ইনপুট/আউটপুট অপারেশনের সময় ত্রুটি বা সফলতা সম্পর্কে জানাবে।

উদাহরণ:

PROGRAM error_handling_example
    INTEGER :: unit, status
    CHARACTER(LEN=100) :: filename, input_line

    filename = 'data.txt'
    OPEN(UNIT=10, FILE=filename, STATUS='OLD', IOSTAT=status)
    
    IF (status /= 0) THEN
        PRINT *, 'Error opening the file.'
    ELSE
        PRINT *, 'File opened successfully.'
    END IF

    ! ফাইল থেকে পড়া
    READ(10, *, IOSTAT=status) input_line
    IF (status /= 0) THEN
        PRINT *, 'Error reading the file.'
    ELSE
        PRINT *, 'Data read successfully: ', input_line
    END IF

    CLOSE(UNIT=10)
END PROGRAM error_handling_example

এখানে:

  • IOSTAT=status ত্রুটি সনাক্ত করে, এবং এটি যদি শূন্য না হয় (অর্থাৎ ত্রুটি ঘটে), তবে কোড ত্রুটির বার্তা প্রিন্ট করে।

২. Error Codes (ত্রুটি কোড)

ফোরট্রানে সাধারণভাবে বিভিন্ন ফাংশন বা সাবরুটিনের জন্য ত্রুটি কোড ব্যবহৃত হয়। এই কোডগুলির মাধ্যমে আপনার প্রোগ্রামটি জানাতে পারে কোন ধরনের ত্রুটি ঘটেছে।

উদাহরণ:

PROGRAM error_codes_example
    INTEGER :: result

    result = my_function()
    IF (result /= 0) THEN
        PRINT *, 'Error in function: ', result
    ELSE
        PRINT *, 'Function executed successfully.'
    END IF
END PROGRAM error_codes_example

FUNCTION my_function()
    INTEGER :: my_function
    ! কিছু কাজ যা ত্রুটি ঘটাতে পারে
    my_function = 1  ! ১ মানে ত্রুটি
END FUNCTION my_function

এখানে:

  • my_function ফাংশন ত্রুটি কোড ফিরিয়ে দেয়, এবং প্রোগ্রাম সেই কোড অনুসারে পরবর্তী পদক্ষেপ নেয়।

৩. Program Termination (প্রোগ্রাম সমাপ্তি)

ফোরট্রানে প্রোগ্রামটি স্বাভাবিকভাবে সমাপ্ত না হলে, STOP স্টেটমেন্ট ব্যবহার করে প্রোগ্রামটি বন্ধ করা যেতে পারে। এটি সাধারণত ত্রুটির ক্ষেত্রে ব্যবহৃত হয়।

উদাহরণ:

PROGRAM stop_example
    INTEGER :: i

    DO i = 1, 10
        IF (i == 5) THEN
            PRINT *, 'An error occurred, stopping program.'
            STOP
        END IF
    END DO

    PRINT *, 'This will not be printed.'
END PROGRAM stop_example

এখানে:

  • যখন i মান ৫ হয়, তখন STOP স্টেটমেন্ট প্রোগ্রাম বন্ধ করে দেয় এবং পরবর্তী কোড এক্সিকিউট হবে না।

৪. TRY-CATCH স্টাইল Exception Handling

ফোরট্রানে সরাসরি TRY-CATCH স্টাইলের এক্সসেপশন হ্যান্ডলিং নেই, তবে কিছু পদ্ধতিতে সিমুলেট করা যায়। এর মধ্যে ERR= আই/O স্টেটমেন্ট ব্যবহার করে ত্রুটি ধরার একটি পদ্ধতি ব্যবহৃত হতে পারে।

উদাহরণ:

PROGRAM try_catch_simulation
    INTEGER :: i, divisor, result
    divisor = 0

    ! ডিভাইড করতে গিয়ে ত্রুটি ঘটবে
    READ *, i
    IF (divisor == 0) THEN
        PRINT *, 'Error: Division by zero.'
    ELSE
        result = i / divisor
        PRINT *, 'Result: ', result
    END IF
END PROGRAM try_catch_simulation

এখানে:

  • IF (divisor == 0) শর্ত ব্যবহার করে ডিভিশন বাই জিরো ত্রুটি সিমুলেট করা হয়েছে, এবং ত্রুটি থাকলে নির্দিষ্ট বার্তা প্রদর্শন করা হয়।

৫. TRAP এবং SIGNAL Handling

ফোরট্রানে সিগন্যাল এবং সিগন্যাল ট্র্যাপিংয়ের জন্য বিল্ট-ইন সমর্থন নেই, তবে কিছু প্ল্যাটফর্মে, যেমন লিনাক্সে, আপনি সিগন্যাল হ্যান্ডলিংয়ের জন্য C এবং Fortran এর মিশ্রণ ব্যবহার করতে পারেন।


উপসংহার

ফোরট্রানে Error এবং Exception Handling সিস্টেম সরাসরি থাকা না সত্ত্বেও কিছু পদ্ধতিতে কোডের ত্রুটি নির্ধারণ এবং তা পরিচালনা করা সম্ভব। এর মধ্যে:

  • IOSTAT এর মাধ্যমে ইনপুট/আউটপুট ত্রুটি সনাক্তকরণ।
  • Error codes ব্যবহার করে ত্রুটি কোডের মাধ্যমে ত্রুটি সনাক্তকরণ।
  • STOP কমান্ডের মাধ্যমে প্রোগ্রাম বন্ধ করা।
  • TRY-CATCH স্টাইল সিমুলেশন।

এই পদ্ধতিগুলি ত্রুটি পরিচালনা করতে সাহায্য করে এবং প্রোগ্রামিং এ ত্রুটির জন্য সঠিক পদক্ষেপ গ্রহণ করতে সহায়ক।

Content added By
Promotion

Are you sure to start over?

Loading...